//
//  BaseViewModel.h
//  ZhaoCaiMao
//
//  Created by 谢英泽 on 2017/3/17.
//  Copyright © 2017年 谢英泽. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "AppHeader.h"
#import "BaseViewModelProtocol.h"

#define kResetModel(dict) [self mergeFromDictionary:dict useKeyMapping:YES error:nil]

/**
 model列表网络请求类型
 */
typedef NS_ENUM(NSUInteger,kModelListUpdateStyle) {
    kModelListUpdateRefreshing = 0, //刷新数据
    kModelListUpdateMore,           //加载更多
};

typedef void (^ViewModelResult)(BOOL success,id obj);

@interface BaseViewModel : NSObject<BaseViewModelProtocol>
/**
 数据请求方式
 */
@property (nonatomic, assign) kModelListUpdateStyle updateType;
/**
 viewModel带有可变数组，存模型
 */
@property (nonatomic, strong) NSMutableArray *viewModelList;

@property (nonatomic, assign) int page;

@property (nonatomic, assign) int size;

/**
 简便实例化方法
 @return 实例化实例
 */
+ (instancetype)viewModel;

/**
 该方法为通用方法，数据不需要转换
 @param method 请求方法 网络url
 @param params 参数 参数为字典数组
 @param result block数据回调
 */
- (void)getBaseDataFromNetworkWithMethod:(NSString *)method param:(NSArray *)params result:(ViewModelResult)result;

/**
 弹出错误信息
 @param msg 错误信息
 */
- (void)showAlertViewWithMessage:(NSString *)msg;

@end
